<?php

class App_View_Helper_MenuPrincipal extends Zend_View_Helper_Abstract {
	
	private $baseUrl;
	
	function __construct() {
		$frontController = Zend_Controller_Front::getInstance();
		$this->baseUrl = $frontController->getBaseUrl ();
	}
	
	public function menuPrincipal() {
		$array_menu = $this->armarOpciones();
		//Zend_Debug::dump($array_menu,"GENERADOS");
		
		//$array_menu = array (0 => array ("etiqueta" => "Usuarios", "descripcion" => "Usuarios", "icono" => "", "target" => "", "hijos" => array (0 => array ("etiqueta" => "Gestión de Usuarios del Sistema", "descripcion" => "Gestión de Usuarios del Sistema", "url" => "/usuarios/index.php", "hijos" => array () ), 1 => array ("etiqueta" => "Gestión de Usuarios de Salas", "descripcion" => "Gestión de Usuarios de Salas", "url" => "javascript:openDGDialog('/generales/asignar_usuarios_sala.php','800','500','')", "hijos" => array () ), 2 => array ("etiqueta" => "Gestión de Usuarios de Instituciones", "descripcion" => "Gestión de Usuarios de Instituciones", "url" => "/usuarios/usuario_institucion.php", "hijos" => array () ), 3 => array ("etiqueta" => "Gestión de Usuarios de IPS", "descripcion" => "Gestión de Usuarios de IPS", "url" => "/usuarios/usuario_ips.php", "hijos" => array () ), 4 => array ("etiqueta" => "Gestión de Roles y Perfiles", "descripcion" => "Gestión de Roles y Perfiles", "url" => "{$baseUrl}/roles/index/lista", "hijos" => array () ) ) ), 1 => array ("etiqueta" => "Gestor de procesos", "descripcion" => "Gestor de procesos", "icono" => "", "target" => "", "hijos" => array (0 => array ("etiqueta" => "Registro Calificado", "descripcion" => "Registro Calificado", "url" => "/procesos/index.php", "hijos" => array (0 => array ("etiqueta" => "Registro Calificado", "descripcion" => "Registro Calificado", "url" => "/procesos/index.php", "hijos" => array () ) ) ), 1 => array ("etiqueta" => "Trámites Institucionales", "descripcion" => "Trámites Institucionales", "url" => "/instituciones/institucion_tramite.php", "hijos" => array () ) ) ), 2 => array ("etiqueta" => "Instituciones", "descripcion" => "Instituciones", "icono" => "", "target" => "", "hijos" => array (0 => array ("etiqueta" => "Gestión de Instituciones del Sistema", "descripcion" => "Gestión de Instituciones del Sistema", "url" => "/instituciones/institucion_listado.php", "hijos" => array () ) ) ), 3 => array ("etiqueta" => "Programas", "descripcion" => "Programas", "icono" => "", "target" => "", "hijos" => array (0 => array ("etiqueta" => "Gestión de Programas del Sistema", "descripcion" => "Gestión de Programas del Sistema", "url" => "/programas/index.php", "hijos" => array () ) ) ), 4 => array ("etiqueta" => "Reportes", "descripcion" => "Reportes", "icono" => "", "target" => "", "hijos" => array (0 => array ("etiqueta" => "Reportes Procesos RC del Sistema", "descripcion" => "Reportes Procesos RC del Sistema", "url" => "/reportes/rc_index.php", "hijos" => array () ), 1 => array ("etiqueta" => "Reportes Procesos IES del Sistema", "descripcion" => "Reportes Procesos IES del Sistema", "url" => "/reportes/tins_index.php", "hijos" => array () ), 2 => array ("etiqueta" => "Reportes Generales del Sistema", "descripcion" => "Reportes Generales del Sistema", "url" => "/reporteador/index.php", "hijos" => array () ) ) ) );
		//Zend_Debug::dump(Zend_Controller_Front::getInstance()->getRequest()->getCookie("menu_selected"),"QUEMADOS");Zend_Debug::dump($_COOKIE,"OTRO");
		if (count ( $array_menu ) == 0) {
			return "";
		}
		return "<nav class=\"sidebar-nav\">{$this->generar_menu( $array_menu, 0 )}</nav>";
	
	}
	
	private function generar_menu($array_menu, $nivel, $padre_seleccionado=false) {
		$class_menu = "";
		$class_link = "";
		$class_menu_ul = " class=\"collapse\" style=\"height: 0px;\"";
		if ($padre_seleccionado) {
		    $class_menu_ul = " class=\"collapse\" style=\"height: auto;\"";
		}
		if ($nivel == 0) {
			$class_menu = " id=\"menu\"";
			$class_menu_ul = "";
			//$class_link = " class=\"parent\"";
		}
		$url="href=\"#\"";
		$text_menu = "";
		
		//$text = "<div{$class_menu}>";
		$text = "<ul{$class_menu}{$class_menu_ul}>";
		
		foreach ( $array_menu as $item ) {
		    $pintar_menu = true;
		    if (in_array($item["etiqueta"],array("Listas de plantillas")) &&
		        (App_User::getCodigoPadreRol()==Roles_Model_Roles::CODPADRE_IES ||
		         App_User::getCodigoPadreRol()==Roles_Model_Roles::CODPADRE_CONSEJERO
		         )){
		        $pintar_menu = false;
            }
            
			if (in_array($item["etiqueta"],array("Acreditación")) &&
		        (App_User::getCodigoPadreRol()==Roles_Model_Roles::CODPADRE_PAR ||
		        App_User::getCodigoPadreRol()==Roles_Model_Roles::CODPADRE_ADMIN)
		        ){
		        $pintar_menu = false;
            }
            
		    if ($pintar_menu){
				if (array_key_exists ( "url", $item )) {
					if ($item ["url"] != "" && count ( $item ["hijos"] )==0) {
						$url = "href=\"{$this->baseUrl}{$item["url"]}\"";
					}
				}
//				if ($nivel != 0 && count ( $item ["hijos"] ) > 0) {
//					$class_link = " class=\"parent\"";
				$hijo_seleccionado = false;
				$parent_selected = "";
				if ($nivel == 0 && count ( $item ["hijos"] ) > 0) {
				    $seleccionada = "";//Zend_Controller_Front::getInstance()->getRequest()->getCookie("menu_selected");
				    if(!empty($seleccionada)) {
				        foreach($item ["hijos"] as $elemento) {
				            if( "{$this->baseUrl}{$elemento["url"]}" == $seleccionada) {
					            //Zend_Debug::dump($seleccionada,"GENERADOS");
					            $parent_selected = " class=\"active\"";
					            $hijo_seleccionado = true;
				            }
				        }
				    }
				}
				
				if(count ( $item ["hijos"] ) > 0) {
				    $class_link = " <span class=\"fa arrow\">";
				}
				
				$text .= "<li{$parent_selected}><a {$url} title=\"{$item["descripcion"]}\">{$item["etiqueta"]}{$class_link}</a>";
				if (count ( $item ["hijos"] ) > 0) {
					$text .= $this->generar_menu ( $item ["hijos"], ($nivel + 1), $hijo_seleccionado);
				}
				$text .= "</li>";
				
		    }
		}
		if (!empty($text_menu)){
		    //$text .= "<ul{$class_menu}{$class_menu_ul}>{$text_menu}</ul>";
		}
		
		$text .= "</ul>";
		//$text .= "</div>";
		return $text;
	}
	
	private function armarOpciones() {
	    /** @var $perfil App_Perfil */
		$perfil = App_Perfil::getInstance();
		if(!isset($perfil)){
			return;
		}
		
		$arr_padres = $perfil->padres_cargados();
		//Zend_Debug::dump($arr_padres,"PADRES");
		$opciones = array();
		foreach ($arr_padres as $data) {
			if (substr($data["id"],0,1)=="#") {
				continue;
			}
			//$gestor_menus->agregar_opcion($data["nombre"],"",$data["nombre"]);
			$i = count($opciones);
    		$opciones[$i]["etiqueta"]		=$data["nombre"];
    		$opciones[$i]["descripcion"]	=$data["nombre"];
    		$opciones[$i]["url"]			="";
    		$opciones[$i]["hijos"]			=array();
    
    		foreach ($data["hijos"] as $hijo) {
    			if( $perfil->cargar($hijo) && $perfil->url()!="" ) {
    				//$gestor_menus->agregar_subopcion($Perfil->nombre(),$url,$Perfil->nombre());
    				$nivel_uno = $opciones[$i]["hijos"];
            		$k = count($nivel_uno);
            		$nivel_uno[$k]["etiqueta"]		=$perfil->nombre();
            		$nivel_uno[$k]["descripcion"]	=$perfil->nombre();
            		$nivel_uno[$k]["url"]			=$perfil->url();
            		$nivel_uno[$k]["hijos"]			=array();
            		
            		$opciones[$i]["hijos"] = $nivel_uno;
    			}
    		}
		}
		return $opciones;
	}
	
}//fin de la clase
